package com.alex.tinyurl.service.store;

import java.util.Optional;

/**
 * 原始URL和短URL的存储接口
 *
 * @author Alex
 */
public interface UrlMappingStore {

    /**
     * 存储短URL和原始URL的映射关系
     *
     * @param tinyUrl     端URL
     * @param originalUrl 原始URL
     * @return 如果存储成功，返回true；否则返回false
     */
    boolean saveUrlMap(String tinyUrl, String originalUrl);

    /**
     * 通过短URL获取原始URL
     *
     * @param tinyUrl 短URL
     * @return 如果原始URL存在，则返回原始URL；否则返回Optional.EMPTY;
     */
    Optional<String> getOriginalUrl(String tinyUrl);

    /**
     * 通过原始URL获取短URL
     *
     * @param originalUrl 原始URL
     * @return 如果短URL存在，则返回；否则返回Optional.EMPTY
     */
    Optional<String> getTinyUrl(String originalUrl);

}
